﻿using System;
using System.Collections.Generic;
using HappyBa.Core.Data;

namespace HappyBa.Core.Interfaces
{
    public interface ITargetProccessFacade
    {
        //get
        IList<Bug> GetAllBugs(Connection connection, IEnumerable<ProjectInfo> projects);
        IList<Task> GetAllTasks(Connection connection, IEnumerable<int> userStories);
        IList<UserStory> GetAllUserStories(Connection connection, IEnumerable<ProjectInfo> projects);
        IList<Assignment> GetAssigments(Connection connection, IEnumerable<int> ids);
        IList<Comment> GetComments(Connection connection, IEnumerable<int> ids);
        IEnumerable<EntityType> GetEntityTypes(Connection connection);
        IList<Impediment> GetImpediments(Connection connection, IEnumerable<int> ids);
        IList<Data.Project> GetProjects(Connection connection, IEnumerable<ProjectInfo> projects);
        IEnumerable<Role> GetRoles(Connection connection);
        IList<Time> GetTimes(Connection connection, IEnumerable<int> ids);
        IList<Time> GetTimes(Connection connection, DateTime from, DateTime to, IEnumerable<string> users);
        IList<EntityBase> GetAssignables(Connection connection, IEnumerable<int> ids);
        IList<User> GetAllUsers(Connection connection);


        //update
        T CreateOrUpdate<T>(Connection connection, string type, T detail);
    }
}
